PostgreSQL

class PostgreSQL(url: String, username: String, password: String, options: ConnectionPool.Options = ConnectionPool.Options(), val encoders: ValueEncoderRegistry = ValueEncoderRegistry()) : IPostgresSQL(source)

PostgreSQL class provides mechanisms to interact with a PostgreSQL database. It implements Driver, Driver.Pool, and Driver.Transactional interfaces, offering functionalities such as connection pooling, executing queries, fetching data, and handling transactions.

The URL scheme designator can be either postgresql:// or postgres://. Each of the URL parts is optional.

postgresql:// postgresql://localhost postgresql://localhost:5433 postgresql://localhost/mydb

Parameters

url

The URL of the PostgreSQL database to connect to.

username

The username used for authentication.

password

The password used for authentication.

options

Optional pool configuration, defaulting to Driver.Pool.Options.

encoders

Optional registry of value encoders to use for encoding query parameters.

Constructors

Link copied to clipboard
constructor(url: String, username: String, password: String, options: ConnectionPool.Options = ConnectionPool.Options(), encoders: ValueEncoderRegistry = ValueEncoderRegistry())

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override val encoders: ValueEncoderRegistry

Functions

Link copied to clipboard
open suspend override fun acquire(): Result<Connection>
Link copied to clipboard
open suspend override fun begin(): Result<Transaction>
Link copied to clipboard
open suspend override fun close(): Result<Unit>
Link copied to clipboard
open suspend override fun execute(statement: Statement): Result<Long>
open suspend override fun execute(sql: String): Result<Long>
Link copied to clipboard
open suspend override fun fetchAll(statement: Statement): Result<ResultSet>
open suspend override fun fetchAll(sql: String): Result<ResultSet>
open suspend override fun <T> fetchAll(statement: Statement, rowMapper: RowMapper<T>): Result<List<T>>
open suspend override fun <T> fetchAll(sql: String, rowMapper: RowMapper<T>): Result<List<T>>
Link copied to clipboard
open suspend override fun listen(channel: String, f: suspend (Notification) -> Unit)

Listens for notifications on a specified PostgreSQL channel and executes a callback for each received notification.

open suspend override fun listen(channels: List<String>, f: suspend (Notification) -> Unit)

Listens for notifications on specified PostgreSQL channels and executes a callback for each received notification.

Link copied to clipboard
open suspend override fun migrate(path: String, table: String, schema: String?, createSchema: Boolean, afterStatementExecution: suspend (Statement, Duration) -> Unit, afterFileMigration: suspend (Migration, Duration) -> Unit): Result<Migrator.Results>
Link copied to clipboard
open suspend override fun notify(channel: String, value: String)

Publishes a notification to a specified PostgreSQL channel.

Link copied to clipboard
open override fun poolIdleSize(): Int
Link copied to clipboard
open override fun poolSize(): Int
Link copied to clipboard
open suspend override fun <T> transaction(f: suspend Transaction.() -> T): T
Link copied to clipboard
open suspend override fun <T> transactionCatching(f: suspend Transaction.() -> T): Result<T>
Link copied to clipboard
open override fun validateChannelName(channel: String)

Validates the name of a PostgreSQL channel to ensure it adheres to the naming rules.